Skip to content

Show other homes' face-room lines as bubbles at once, never in the composer queue - #466

Merged
Birfy merged 3 commits into
ThinkFlowLab:mainfrom
Birfy:fix/455-face-room-other-home-lines
Oct 20, 2026
Merged

Birfy merged 3 commits into
ThinkFlowLab:mainfrom
Birfy:fix/455-face-room-other-home-lines

Conversation

@Birfy

@Birfy Birfy commented Oct 20, 2026 •

Copy link
Copy Markdown
Collaborator

Fixes #455

What / why. In a face-to-face room, another person's line (postHuman) or another home's approved Bot reply (postRemote) that arrived while this home's group Session was mid-turn was followuped, so DSH parked it in the composer queue: raw [Group post from …] text, steerable with Cmd/Ctrl+Enter, and only drawn as a bubble after the turn. The receiving side also joined a person's typed line breaks (Markdown soft breaks).

  • groups.js postToRoom: a post from elsewhere (human / remote) while the room agent is running is held instead of queued. The running round (rt.roomProgress) shows it at once as that person's bubble (personReply) or the friend's Bot bubble (kind: 'remote', kept out of round reports); a Bot line is logged then, so the Bots still to speak see it (a person's line is already logged by applyFaceLine). After agent.whenIdle() it is followuped with shown: true, so its own round routes it by the existing rules (who answers is unchanged), while group_relay neither draws nor logs it a second time. With no round running it is only held and then goes exactly as before.
  • turns.js: carries shown onto the queued room item. cells.js: a trigger with shown: true draws nothing (no duplicate bubble).
  • styles.js: .bt-person-msg .bt-bubble :is(p,li){white-space:pre-line}, so a person's line keeps its line breaks, matching the sender's own pre-wrap bubble.
  • Docs: core-host / core-client; changelog fragment 455-face-room-other-home-lines.fixed.md.

Test.

  • core/test/rounds.test.js #455: while the round runs, a 3-line peer line and another home's Bot line land in the running round's replies at once (line breaks intact, no header), nothing is queued in the Session, the Bot line is logged once; after idle both are delivered with shown: true, and the next relay neither redraws nor re-logs them. Fails on main (the lines sit in the queue).
  • core/test/face-people.test.js #455: a shown trigger draws nothing (an unshown one does); the pre-line rule is in CONVERSATION_CSS and the bundle.
  • ARCH_DOCS_BASE=origin/main TZ=UTC npm run verify: pass (core 1022, social 282, tree 80, timeline 80, scripts 88, interop 37, live-e2e 16; 0 failures).
  • Not run: live two-home face room on the Mac instances.

Risk tier: T2 (estimate, matches the risk-gate report; the controller sets the label)

@Birfy Birfy added agent-pr Pull request opened by an agent bug Something isn't working area:social Friends, invites, grants, Bot Social labels Oct 20, 2026
@Birfy Birfy self-assigned this Oct 20, 2026
@Birfy Birfy added the area:ui Web/desktop UI and copy label Oct 20, 2026
@Birfy

Birfy commented Oct 20, 2026

Copy link
Copy Markdown
Collaborator Author

Self-review: PASS
Tip SHA: 15ee15f
Ran:

@Birfy Birfy added the awaiting-approval PR is green and waits for the maintainer's approval (T2/T3) or a review PASS at its tip label Oct 20, 2026
@Birfy
Birfy added this pull request to the merge queue Oct 20, 2026
Merged via the queue into ThinkFlowLab:main with commit b3fc677 Oct 20, 2026
8 checks passed
@Birfy
Birfy deleted the fix/455-face-room-other-home-lines branch October 20, 2026 00:31
@Birfy Birfy removed the awaiting-approval PR is green and waits for the maintainer's approval (T2/T3) or a review PASS at its tip label Oct 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agent-pr Pull request opened by an agent area:social Friends, invites, grants, Bot Social area:ui Web/desktop UI and copy bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Face room: other home's lines arrive as raw queued '[Group post from …]' text above the composer, not bubbles; line breaks flattened

1 participant